Programmable integrated circuits are a type of integrated circuit that can be configured by a user to implement custom logic functions. In a typical scenario, a logic designer uses computer-aided design (CAD) tools to design a custom logic circuit. When the design process is complete, the CAD tools generate configuration data. The configuration data is loaded into a programmable integrated circuit to configure the device to perform desired logic functions.
In a typical system, a programmable integrated circuit, memory devices, and other electronic components are mounted on a printed circuit board. The programmable integrated circuit includes memory interface circuitry that is used to relay data back and forth between the programmable integrated circuit and the memory devices (i.e., the memory interface circuitry is used to read data from and write data into the memory devices).
Conventional memory interface circuitry typically requires clock calibration operations to be performed at each device boot-up in order to align memory controller operations with external memory operations. For example, memory interface clock signals may be calibrated to match data signals received from the memory devices. Performing calibration operations can lead to excessive delay during device power-up. In addition, calibration circuitry may occupy a disproportionately large amount of valuable circuit area on the programmable integrated circuit.
It may therefore be desirable to provide integrated circuits with improved memory interface calibration capabilities.